package com.erp.common.enums;

import org.springframework.http.HttpStatus;

public enum ResponseCode {
    /**
     * 参数错误
     */
    PARAM_ERROR(10000, "参数不合法"),
    REPETITIVE_OPERATION(10001, "请勿重复操作"),
    MAIL_SEND_SUCCESS(10003, "邮件发送成功"),
    NOT_DATA(10004,"列表没有数据"),

    /**
     * 成功
     */
    OK(200,"SUCCESS"),

    /**
     * 业务异常
     */
    BUSINESS_ERROR(400,"FAIL"),

    /**
     * 认证失败
     */
    AUTHORIZE_FAILED(401, "认证失败"),

    /**
     * Token类型或者格式不对
     */
    ILLEGAL_TOKEN(402, "Token非法"),

    /**
     * Token已过期，或者已下线
     */
    TOKEN_EXPIRE(405, "Token已过期"),

    /**
     * 找不到用户信息
     */
    NO_USER_INFO(406, "用户信息不存在"),

    /**
     * 账号已在其他地方登录
     */
    LOGIN_OTHER_WHERE(407, "账号已在其他地方登录"),

    /**
     * 当前系统账户已绑定到其他{微信}账号，请解绑后操作
     */
    ACCOUNT_BINDING_CONFLICT(408, "当前系统账户已绑定到其他%s账号，请解绑后操作。"),

    /**
     * 当前{微信}账号未绑定系统账户，请绑定后登录
     */
    ACCOUNT_NOT_BINDING(409, "当前%s账号和系统账户没有绑定关系，请绑定后操作。"),

    /**
     * 未获取到%s账号信息,请授权后操作
     */
    NO_THIRD_SYS_INFO(410, "未获取到%s账号信息,请授权后操作"),

    /**
     * 404 Web 服务器找不到您所请求的文件或脚本。请检查URL 以确保路径正确。
     */
    NOT_FOUND(4004,
            String.format("哎呀，无法找到这个资源啦(%s)", HttpStatus.NOT_FOUND.getReasonPhrase())),

    /**
     * 405 对于请求所标识的资源，不允许使用请求行中所指定的方法。请确保为所请求的资源设置了正确的 MIME 类型。
     */
    METHOD_NOT_ALLOWED(4005,
            String.format("请换个姿势操作试试(%s)", HttpStatus.METHOD_NOT_ALLOWED.getReasonPhrase())),

    /**
     * 415 Unsupported Media Type
     */
    UNSUPPORTED_MEDIA_TYPE(4105,
            String.format("呀，不支持该媒体类型(%s)", HttpStatus.UNSUPPORTED_MEDIA_TYPE.getReasonPhrase())),

    /**
     * 系统限流
     */
    TRAFFIC_LIMITING(4209, "哎呀，网络拥挤请稍后再试试"),


    /**
     * 系统异常 500 服务器的内部错误
     */
    SYSTEM_ERROR(5000,"服务器开小差，请稍后再试"),

    /**
     * rpc调用异常
     */
    RPC_ERROR(5100, "呀，网络出问题啦！"),



    /**
     * 用户业务码　20000 ~ 29999
     */
    NO_LOGIN(2000,"用户未登录"),

    ACCOUNT_LOCKED(2001,"用户帐号已被锁定"),
    ACCOUNT_DISABLED(2002,"用户已失效"),
    ACCOUNT_EXPIRED(2003,"用户帐号已过期"),
    ACCOUNT_CREDENTIAL_EXPIRED(2004,"用户凭证已过期"),

    /**
     * 系统异常业务码　50000 ~
     */


    /**
     * 服务调用异常
     */
    API_GATEWAY_ERROR(99999, "网络繁忙，请稍后再试");

    private int code;
    private String msg;

    ResponseCode(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }


    public int getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }

    public static void main(String[] args) {

        System.out.println(ResponseCode.OK.msg);
    }

}